﻿#pragma warning(disable: 4996)
#pragma warning(disable: 6031)

/*
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

本题要求编写程序，求一个给定的n阶方阵的鞍点。

输入格式：
输入第一行给出一个正整数n（1≤n≤6）。随后n行，每行给出n个整数，其间以空格分隔。

输出格式：
输出在一行中按照“行下标 列下标”（下标从0开始）的格式输出鞍点的位置。如果鞍点不存在，则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。

输入样例1：
4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9
输出样例1：
2 1
输入样例2：
2
1 7
4 1
输出样例2：
NONE
*/

#include <stdlib.h>
#include <stdio.h>

typedef struct _Array {
	int n;
	int* data;
}Array;

Array array_create(int n) {
	Array a;
	a.n = n;
	a.data = (int*)malloc(sizeof(int) * n);
	return a;
}

void array_free(Array* a) {
	if (a->data)
		free(a->data);
	a->data = NULL;
	a->n = 0;
}

int* array_at(Array* a, int i) {
	return a->data + i;
}

int array_find(Array* a, int v) {
	for (int i = 0; i < a->n; ++i) {
		if (a->data[i] == v)
			return i;
	}
	return -1;
}

Array array;
int nFind;

void read_data() {
	int n;
	scanf("%d %d", &n, &nFind);
	array = array_create(n);
	for (int i = 0; i < n; ++i)
		scanf("%d", array_at(&array, i));
}

void solve() {
	int i = array_find(&array, nFind);
	if (i>=0) {
		printf("%d\n", i);
	}
	else
		printf("Not Found\n");
	array_free(&array);
}

int main()
{
	freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/DataStructure/M2019秋C入门和进阶练习集/7-57.txt", "r", stdin);
	read_data();
	solve();
	return 0;
}

//freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/DataStructure/M2019秋C入门和进阶练习集/7-50.txt", "r", stdin);
